From c2ed1bea2932cb303785ecbf298a2109d2952abc Mon Sep 17 00:00:00 2001 From: John Ericson Date: Wed, 13 Jul 2016 10:11:55 -0700 Subject: [PATCH] Use flat_map to more concisely iterator through Options --- src/cargo/util/toml.rs | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/src/cargo/util/toml.rs b/src/cargo/util/toml.rs index 726eca42f..3045a7d3c 100644 --- a/src/cargo/util/toml.rs +++ b/src/cargo/util/toml.rs @@ -558,19 +558,17 @@ impl TomlManifest { try!(process_dependencies(&mut cx, self.build_dependencies.as_ref(), Some(Kind::Build))); - if let Some(targets) = self.target.as_ref() { - for (name, platform) in targets.iter() { - cx.platform = Some(try!(name.parse())); - try!(process_dependencies(&mut cx, - platform.dependencies.as_ref(), - None)); - try!(process_dependencies(&mut cx, - platform.build_dependencies.as_ref(), - Some(Kind::Build))); - try!(process_dependencies(&mut cx, - platform.dev_dependencies.as_ref(), - Some(Kind::Development))); - } + for (name, platform) in self.target.iter().flat_map(|t| t) { + cx.platform = Some(try!(name.parse())); + try!(process_dependencies(&mut cx, + platform.dependencies.as_ref(), + None)); + try!(process_dependencies(&mut cx, + platform.build_dependencies.as_ref(), + Some(Kind::Build))); + try!(process_dependencies(&mut cx, + platform.dev_dependencies.as_ref(), + Some(Kind::Development))); } replace = try!(self.replace(&mut cx)); @@ -694,13 +692,8 @@ impl TomlManifest { fn replace(&self, cx: &mut Context) -> CargoResult> { - let map = match self.replace { - Some(ref map) => map, - None => return Ok(Vec::new()), - }; - let mut replace = Vec::new(); - for (spec, replacement) in map { + for (spec, replacement) in self.replace.iter().flat_map(|x| x) { let spec = try!(PackageIdSpec::parse(spec)); let version_specified = match *replacement { -- 2.30.2